﻿using System;
using Acaweb.Data.Contracts;
using Acaweb.Model.Entities;
using Acaweb.Model.Entities.DatosCompuestos;
using Acaweb.Componentes.Contracts;
using System.Collections.Generic;
using System.Linq;

namespace Acaweb.Componentes
{
    public class VotosService : BaseService, IVotosService
    {
        private IVotosDao _VotosDao;
        private IVotantesRegistradosDao _VotantesRegistradosDao;

        public IVotosDao VotosDao
        {
            get { return _VotosDao; }
            set { _VotosDao = value; }
        }

        public IVotantesRegistradosDao VotantesRegistradosDao
        {
            get { return _VotantesRegistradosDao; }
            set { _VotantesRegistradosDao = value; }
        }

        public void Create(Votos Voto)
        {
            VotosDao.Save(Voto);
        }

        public void Create(Votos Voto, string CodigoVotante)
        {
            if (IsHabilitado(CodigoVotante))
            {
                VotosDao.Save(Voto);
                VotantesRegistradosDao.Save(new VotantesRegistrados { CodigoVotante = CodigoVotante });
            }
        }

        public void Delete(string CodigoVoto)
        {
            throw new NotImplementedException();
        }

        public IList<Votos> GetAll()
        {
            return _VotosDao.GetAll();
        }

        public IList<Votos> GetByAspirantes(string Aspirante)
        {
            return _VotosDao.GetByAspirantes(Aspirante);
        }


        public bool IsHabilitado(string CodigoEstudiante)
        {
            VotantesRegistrados VR = VotantesRegistradosDao.GetById(CodigoEstudiante);
            return VR == null;
        }
    }
}
